#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//#include <math.h>
//#include <string.h>
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    char a[100][100] = { 0 };
//    int i = 0, j = 0, count = 0, f = 0;
//    getchar();
//    while (i < n)
//    {
//        gets(a[i]);
//        ++i;
//    }
//    for (i = 0; i < n; i++)
//    {
//        for (f=0,count = 0, j = 0; j < 100; j++)
//        {
//            if (a[i][j] == '(')
//            {
//                f = 1;
//            }
//            if(f)
//            if (a[i][j] >= '1' && a[i][j] <= '9')
//            {
//                count = count * 10 + a[i][j] - '0';
//            }
//            else if (a[i][j] == ')')
//                break;
//            else if (a[i][j] != '(' && a[i][j] < '0'&&a[i][j]>'9')
//            {
//                count = 0;
//                break;
//            }
//        }
//        if (count == 0)
//        {
//            printf("not find\n");
//        }
//        else
//            printf("%d\n", count);
//    }
//
//    return 0;
//}
#include <stdio.h>
int cj(int n)
{
    long int i = 0, t = 1;
    for (i = n; i >= 1; i--)
    {
        t = t * i;
    }
    return t;
}
int main()
{
    int n = 0, fz = 1, t = 0;
    double fs = 0, s = 0;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        t = 2 * i - 1;
        s = s + fz * 1.0 / cj(t);
        fz = -fz;
    }
    printf("%.6lf", s);

    return 0;
}